package cn.iocoder.yudao.module.product.service.report;

import cn.iocoder.yudao.module.product.controller.admin.report.vo.*;
import cn.iocoder.yudao.module.product.dal.dataobject.report.ReportDownloadDO;
import java.io.IOException;
import java.util.*;
import javax.validation.*;


/**
 * 报告下载 Service 接口
 *
 * @author wcl
 */
public interface ReportDownloadService {

    /**
     * 创建报告下载
     *
     * @param reqVO 创建信息
     * @return 编号
     */
    Long createReportDownload(@Valid ReportDownloadExportReqVO reqVO);

    /**
     * 删除报告下载
     *
     * @param id 编号
     */
    void deleteReportDownload(Long id);

    /**
     * 获得报告下载
     *
     * @param id 编号
     * @return 报告下载
     */
    ReportDownloadDO getReportDownload(Long id);

    /**
     * 导出核算报告
     *
     * @param exportReqVO 导出信息
     * @return 核算报告word
     */
    String exportReportDownload(@Valid ReportDownloadReqVO exportReqVO) throws IOException, InterruptedException;

}
